Fix Error Page version 1.0; @ Copyright Tony Cooper, January 1990
Fixes SyQuest SQ555 44Mb Removable hard drives to work under A/UX 1.1.
There are various operating parameters for SCSI disk drives that can be adjusted by the user. These parameters are grouped together in collections called pages. For example, there is a page of formatting parameters such as interleave; there is a read-only page of disk geometry parameters such as number of heads. Pages can be read using the Mode Sense command and parameters that can be altered are set using the Mode Select command. In addition to the pages there are two other data objects used by the Mode commands - the Mode Header, and the Block Descriptors.
One page concerns the way the disk drive recovers from errors - this is called the Error Recovery page. The parameters in this page are vendor-specific but most modern SCSI drives have the parameters described next. These drives use error detecting or correcting codes to help ensure data integrity. The Error Page specifies how the drive is to handle detected errors. The generic SCSI Disk Driver in A/UX 1.1 wants the following parameters set to the following values:
TB = 1 to ensure that blocks with detected errors (recovered or not) are transferred to the Mac (TB = 0 means the block is lost)
RC = 0 to ensure the drive stops to correct errors (RC = 0 means the drive does not stop, so is faster but less reliable)
EEC = 0 (EEC means Enable Early Correction) I don't know what this does
PER = 1 to enable the reporting of recovered errors using a CHECK CONDITION and appropriate Sense Key
DTE = 0 enables data transfer for any data that can be recovered using error correction
DCR = 0 enables data correction
These are sensible values and most SCSI hard drives have them set as above by default. In addition Apple's HD SC Setup v2.0 uses the Mode Select command to set the above values. But the default for SyQuest SQ555 removable drives is to have PER = 0 and this is not changed by the drive formatting software that comes with most SyQuest drives for the Macintosh. The A/UX generic SCSI Disk Driver checks these values, sees that PER is wrong, and issues a Mode Select command to fix it. The data sent with the Mode Select command is the Mode Header consisting of 4 bytes of value zero followed by 12 bytes of Error Page data. The Mode Header tells the SyQuest how long the Block Descriptor data is. The Block Descriptor data is 8 bytes which sets the blocksize of the drive. In this case the Mode Header zeros say that the Block Descriptor data is not present. The SyQuest reads the zeros, sees that there is no Block Descriptor data, and stops reading. It does not read the Error Page Data that follows. Should it? I don't know what the SCSI Standards say about that. Anyway, the SyQuest only reads 4 out of the 16 bytes and so the SCSI Manager reports the error "MORE DATA THAN DEVICE EXPECTED".
The easiest way to fix this problem is to set the Error Page Parameters correctly while in MacOS. I have written a program called "Fix Error Page" to do it. It can be done anytime, before or after formatting the cartridge. The changes remain until altered by another Mode Select command even if the cartridge is reformatted. It works for drives other than SyQuests and may help other drives that do not work under A/UX to do so.
Running the program is simple. It scans the SCSI bus and displays for each device whether or not the Error Page parameters need fixing. To do the fix click the button next to the drive that you want fixed. Then the fix is done. No rebooting or reformatting is required.
The program is free but comes with a condition of use. You must report back to me whether or not it worked and tell me what brand of drive and software you are using etc. This is so that I can learn when it works and when it does not. So far I know that it works for DPI SyQuest SQ555 drives and software, and survives reformatting. Drive manufacturers may freely supply this program with their drives provided that they notify me that they are doing so. Of course, this should be only temporary because I recommend that the Error Page Fix be included by default in their own software.
Tony Cooper
P.O. Box 10143
Stanford CA 94309
tony@popserver.stanford.edu
Have fun with your SyQuests! I'm just about to use mine to give me an extra 40Mb of space so that I can build X Windows V11R4 which takes up as much space as a SyQuest cartridge. Without the SyQuest I just wouldn't have enough room. I suggest that the first thing you do is make a mini 40Mb root filesystem so that you can boot A/UX from a cartridge. Then you can get rid of those eschatology partitions since the cartridge is a 40Mb eschatology partition of its own. It's reassuring to know that even if your main disk crashes you can still boot up A/UX. That makes recovery a lot easier.
Thanks to DPI for providing the SyQuest SQ555 technical documentation.